home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / CRESC / Variations / gen-rotate < prev    next >
Text File  |  1996-12-31  |  1KB  |  30 lines

  1. gen-rotate rotation-position symbol-pattern 
  2.  
  3. This function, like gen-random-select, simulates a process found in realtime algorithmic applications such as M, Jam, Fingers and Midi-Axe. When a melody pattern is looped with a matching rhythmic figure:
  4.  
  5. '(a b f) '(1/8 1/8 1/16)
  6.                     r
  7.  
  8. Two possible rhythmic variants are possible by applying a rest event to either pitch or rhythm. In the first (here marked r) the symbol 'f is silent for a '1/16 producing '(a b =) and '(1/8 1/8 -1/16).
  9.  
  10. '(a b f) '(1/8 1/8 1/16)
  11.                     R
  12.  
  13. In the second (here marked R) the symbols rotate through the '(1/8 1/8 -1/16) to produce '(a b = f a = b f = a b = etc)
  14.  
  15. The function gen-rotate simulates this second rhythmic variant by generating the appropriate symbol pattern.
  16.  
  17. (gen-rotate nil '(a b f))
  18. --> (a b = f a = b f =)
  19.  
  20. The rotation point defaults to selecting the last symbol in the symbol-pattern and replacing it with a rest-symbol.
  21.  
  22. There is an optional rotation-point-position allowing the rotation point and rest-symbol to be placed anywhere in the symbol-pattern.
  23.  
  24. (gen-rotate 0 '(a b f))
  25. --> (= a b = f a = b f)
  26. (gen-rotate 1 '(a b f))
  27. --> (a = b f = a b = f)
  28. (gen-rotate 2 '(a (1 b) fgh))
  29. --> (a (1 b) = fgh a = (1 b) fgh =)
  30.